문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 블록런처/ModPE 개발 (문단 편집) === 이벤트 리스너 === 기본 지급하는 콜백 함수들이다. 일부 함수들은 멀티플레이를 지원하지 않는다. '이벤트 함수' 등으로 불리는 경우도 있으나, '이벤트 리스너'가 정확한 명칭이다. 몇몇 이벤트 리스너들은 preventDefault(); 함수를 사용하여, 해당 이벤트가 취소되도록 할 수 있다. * function useItem(x, y, z, itemid, blockid, side, itemDamage, blockDamage) 블록을 터치했을때 호출된다. 0.11.1 이상부터 서버원이 문 창고, 케이크 등을 터치한 경우는 호출되지 않는다. 블록런처 1.17 베타 11 버전 기준으로 getPlayerEnt() 또는 Player.getEntity() 사용 시 서버원이 인식되지 않는다. * function attackHook(attacker, victim) '플레이어가 때릴 시 호출'이였으나, 지금은 몹들이 때리는 경우도 호출되는 듯 하다. * function chatHook(str) 해당 스크립트를 적용한 플레이어가 채팅을 했을때 호출된다. 과거에는 채팅의 내용이 /로 시작하면 proCmd만 호출되고 chatHook은 호출되지 않았다. * function procCmd(cmd) 해당 스크립트를 적용한 플레이어가 커맨드(/로 시작)를 쳤을때 호출된다. (/ 뒤에 나오는 문자열이 저장된다.) --MCPE Master에서는 미작동인것 같다.-- 0.16.0 이상에서는 마인크래프트 자체의 명령어를 활성화시키면 호출되지 않았으며, 지금은 호출된다. * function destroyBlock(x, y, z, side) 블록을 부수었을 때 호출된다. * function startDestroyBlock(x, y, z, side) 블록을 부수기 시작할 때 호출된다. * function continueDestroyBlock(x, y, z, side, progress) 블록을 부수는 도중에 호출되는 함수로 추정된다. * function eatHook(hearts, saturationRatio) 음식을 먹었을때 호출된다. hearts는 0.11.1 이하 기준의 체력 회복량, saturationRatio는 허기 전체를 1로 보았을 때를 기준으로 허기가 차오르는 비율. --과거 사기케들이 모여있는 팀과 중2병 걸린 스크립터가 각각 function eatFood(foodId)와 function eatFood(foodId, healAmount)를 개발했었다.-- * function entityAddedHook(entity) 엔티티들이 추가됐을 때 호출된다 --업데이트 직후에 자주 고장났던적이 있다-- * function entityRemovedHook(entity) 엔티티들이 제거됐을 때 호출된다 --마찬가지로 업데이트 직후에 자주 고장난다-- * function entityHurtHook(attacker, victim, halfHearts) 엔티티가 엔티티에게 맞으면 호출되는 것으로 추정된다. * function explodeHook(entity, x, y, z, power, onFire) 폭발 하였을때 호출된다. entity는 터진 엔티티, power는 터진 강도, onFire는 불타는지의 여부이다. * function serverMessageReceiveHook(str) 서버메시지를 받았을때 호출된다. 예를들어 'XXX가 서버에 들어왔습니다' 라던지... * function chatReceiveHook(str, sender) 플레이어(서버원 포함)가 채팅했을때 호출된다. 채팅 내용이 /로 시작하는 경우는 호출되지 않는다. sender는 해당 플레이어의 Client Id가 아닌, 닉네임이다. 고장났다가 블록런처 1.16.2 기준으로 고쳐졌으나, 1.17 베타 11 버전 기준으로 또 고장. 현재 덤프에서도 아예 '''삭제'''되었다. 개발자의 실수인지 아닌지는 모른다. * function deathHook(murderer, victim) 엔티티가 죽었을때 호출된다. * function selectLevelHook() 레벨을 선택했을때 호출된다. * function newLevel(hasLevel) 레벨에 들어갔을때 호출된다. function selectLevelHook()과 다른점은 function selectLevelHook()은 선택즉시 호출하지만, function newLevel()은 완전히 로드가 끝났을때 호출된다. hasLevel은 이전에 존재한 맵인지 확인하는 불리언 값이다. * function leaveGame() 월드를 나갔을때 호출된다. * function modTick() 1초당 20번 호출된다. '''게임 스피드를 조작할시 바뀐다'''. 20틱이 1초이다. 정확히는 1틱 마다 호출. * --function levelEventHook(player, eventType, x, y, z, data) 문이 열리거나 하는 이벤트 등이 발생하면 호출되던 함수이다. 블록런처 1.16.2 기준으로 작동하지 않으며, 다른 용도로 바뀌었다면 수정 바란다.-- * --function blockEventHook(x, y, z, type, data) 주기적(약 3초)으로 창고들의 위치를 가져오던 함수이나, 블록런처 0.12.1부터 작동하지 않기 시작했다. 지금은 덤프 목록에도 안뜬다.-- * function redstoneUpdateHook(x, y, z, newCurrent, someBooleanIDontKnow, blockId, blockData) 특정 블록에 레드스톤 신호가 갔을 때 발동되는 함수이다. 참고로 블록에 레드스톤 신호가 가게끔 설정하는 것은 Block.setRedstoneConsumer(blockId,boolean)이다. --이 것 설정 안 해두면 이 이벤트 리스너는 절대로 발동하지 않는다.-- x, y, z는 특정 블록의 위치이다. newCurrent는 레드스톤 신호의 세기로서, 대부분 newCurrent > 0 (레드스톤 신호 On) 으로 쓰거나 newCurrent == 0 (레드스톤 신호 Off) 으로 쓴다. blockId와 blockData는 각각 블록의 아이디와 블록의 데이터 (데미지)이다. * function screenChangeHook(screenName) 1.13rc1에 추가된 리스너로, 이름 그대로 화면이 바뀌면 호출된다. 아래는 screenName으로 반환되는 것들이다. 이는 버전이 업데이트됨에 따라 조금씩 바뀐다. * 메인화면 : start_screen * 채팅창 : chat_screen * 게임화면 : in_game_play_screen[* 만약 플레이 하고 싶은 스크린을 구하기를 원한다면 hud_screen을 쓰는것을 추천, in_game_play_screen은 게임자체가 돌아가는 월드 스크린이고 hud_screen은 GUI부분의 스크린이다. 따라서 다른스크린으로 왔다가 다시올때는 hud_screen만 호출이 되니 hud_screen을 쓰는것을 추천] * GUI : hud_screen * 일시정지 : pause_screen * 설정창 : options_screen * 스킨선택 : skin_picker_screen * 언어선택 : language_choice_screen * 상점창 : store_screen * 월드선택창 : play_screen - worlds * 렐름선택창 : play_screen - realms * 친구선택창 : play_screen - friends * 월드생성창 : create_world_screen * 서버추가창 : add_external_server_screen * 리소스팩창 : resource_packs_screen * 종료창(팝업) : - - gui.warning.exitGameWarning * 맵삭제창 : confirm_screen * 맵나갈때창 : leave_level_screen * 맵로딩창(싱글) : world_loading_progress_screen - local_world_load * 맵로딩창(멀티) : world_loading_progress_screen - joining_multiplayer_external_server * 인벤토리(C) : creative_inventory_screen * 인벤토리(S) : survival_inventory_screen * 죽었을때창 : death_screen * 작은상자 : small_chest_screen * 큰상자 : large_chest_screen * 조합창 : crafting_screen * 화로창 : furnace_screen * 표지판창 : text_edit_screen * 발사기창 : disapenser_screen * 공급기창 : dropper_screen * 모루창 : anvil_screen * 양조기창 : brewing_stand_screen * 인첸트창 : enchanting_screen * 깔때기창 : hopper_screen * 도전과제창(로그인X) : xbl_optional_signin_screen - gui_achievements * 키보드레이아웃 : keyboard_layout_screen * 컨트롤러레이아웃 : gamepad_layout_screen * function playerExpLevelChangedHook(player, levelIsAdded) - 플레이어의 경험치가 변경 돼서 레벨이 올랐을 때 발동된다. player는 대상 플레이어의 엔티티 값, levelIsAdded는 레벨이 상승한 양이다.[* 예를들어 레벨 10에서 12가 되었다면, levelIsAdded는 2가 반환된다.] * function projectileHitBlockHook(projectile, blockX, blockY, blockZ, side) - 투사체(화살, 인첸트병 등)가 블럭에 닿았을 때 발동된다. projectile은 해당 엔티티 값, blockXYZ는 닿은 블럭의 좌표, side는 닿은 블럭의 부분(왼쪽, 오른쪽, 위, 아래) * function projectileHitEntityHook(projectile, targetEntity) -위에 나온 function projectileHitBlockHook과 유사하지만, 블록이 아닌 엔티티에 투사체가 닿았을 때 발동된다. projectile은 투사체의 엔티티 값, targetEntity는 투사체가 닿은 엔티티의 엔티티 값이다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기